package com.cloudkinto.vo.order.allocate;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @author long
 * @Description fba调拨产品新增请求对象
 * @Date 2025/3/10 13:15
 */
@Data
public class AllocatePlanFbaItemVo {

    @ApiModelProperty(value = "发货计划产品id")
    private Long planId;

    @ApiModelProperty(value = "调拨计划批次id")
    private Long orderId;

    @ApiModelProperty(value = "平台产品id")
    private Long platformProductId;

    @ApiModelProperty(value = "产品图片")
    private String imageUrl;

    @ApiModelProperty(value = "msku")
    private String msku;

    @ApiModelProperty(value = "fnsku")
    private String fnsku;

    @ApiModelProperty(value = "asin")
    private String asin;

    @ApiModelProperty(value = "父asin")
    private String parentAsin;

    @ApiModelProperty(value = "包装类型 1原厂包装 2混装商品")
    private Integer packageType;

    @ApiModelProperty(value = "箱规名称")
    private String boxGaugeName;

    @ApiModelProperty(value = "箱数")
    private Integer boxQty;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "配对产品")
    private List<PairProductItem> pairProductItemList;

    @Data
    public static class PairProductItem {
        @ApiModelProperty(value = "产品id")
        private Long productId;

        @ApiModelProperty(value = "sku")
        private String sku;

        @ApiModelProperty(value = "产品名称")
        private String productName;

        @ApiModelProperty(value = "单箱数量")
        private Integer perBoxQty;

        @ApiModelProperty(value = "计划发货量")
        private Integer planShipments;

        @ApiModelProperty(value = "实际发货量")
        private Integer actualShipments;

        @ApiModelProperty(value = "发货仓库可用库存")
        private Integer deliveryWhAvailableStock;

        @ApiModelProperty(value = "发货仓库在途库存")
        private Integer deliveryWhInTransitStock;

        @ApiModelProperty(value = "发货仓库锁定库存数")
        private Integer lockQty;
    }
}